{#if loadError}
{loadError}
{:else} {#await currentUserIdentity}

{:then identity} {@const isOwner = identity && identity.name === data.username} {#await badgesPromise}

{:then badgesResponse} {#if badgesResponse} {#await badgesResponse.json()} {:then ungroupedBadges}

{#await awcPromise then badges} {#await badges.text() then text} {@const parsedBadges = awcBadgesGrouped(text)} {#if parsedBadges.length > 0} {#each parsedBadges as group}
Anime Watching Club | {group.group}

{#each group.badges as badge} {badge.description} fallback(e, badge.image)} /> {/each}

{/each} {/if} {/await} {/await} {#if ungroupedBadges === null} {@html nbsp('Loading badges ... 50%')} {:else if ungroupedBadges.length === 0}

No due.moe registered badges found for this user. ?
{:else} {@const groupedBadges = Object.entries(groupBadges(ungroupedBadges))} {#if isOwner}
{$locale().user.badges.backToProfile} {#if editMode && isOwner} {@const groups = groupedBadges .map((group) => group[0]) .filter((group) => group !== 'Uncategorised')}

{#if error}

{error}

{/if} {#if groups.length > 0} {#each groups as group} {/if} {#if selectedBadge} {$locale().user.badges.editMode.or} {/if} Must be full date and time, defaults to now if any fields empty {/if}
{/if}

{#each groupedBadges as [category, badges]}

{category}

{#if groupedBadges[groupedBadges.length - 1][0] !== category}

{/if} {/each} {/if}

{:catch}
Could not parse badges
{/await} {:else}

{/if} {:catch}

Could not fetch badges
{/await} {/await} {/if}